Shea et. al. Differential methylation plots (DMRs)
Shea et. al. Differential methylation plots (DMRs)
Libraries
Annotation track of mm10
Import data
RRBS samples
rrbs <- read.delim("./input/epigenomeDetails.mm9.2.RRBS.Promoter_centered_main_filtered.txt",
header = T, sep = "\t", stringsAsFactors = F
)
rrbs.s <- rrbs[, c(1:6, grep(pattern = "methRatio", x = colnames(rrbs)))]
samples <- data.frame(read_xlsx("./input/Shea_2015_sigling_correlations.xlsx")[, 1])[-1, 1]## New names:
## * F20.2 -> F20.2...46
## * F20.5 -> F20.5...54
## * F20.2 -> F20.2...55
## * F20.5 -> F20.5...56
samples <- gsub("\\.", "_", samples)
final.rrbs <- data.frame(rrbs.s[, 1:6], rrbs.s[, grep(paste(samples, collapse = "|"), colnames(rrbs.s))])
final.rrbs <- na.replace(final.rrbs, 0)
final.rrbs <- GRanges(final.rrbs)
system("wget http://hgdownload.cse.ucsc.edu/goldenPath/mm9/liftOver/mm9ToMm10.over.chain.gz && gunzip mm9ToMm10.over.chain.gz")
chain <- import.chain("mm9ToMm10.over.chain")
rrbs.liftOver <- liftOver(x = final.rrbs, chain = chain)
final.rrbs <- rrbs.liftOver@unlistDataFunctions
To create DMR plot
plot_regions <- function(dmr, regions = 1:10, groupsCol = "Group", anno = annoTrack) {
for (i in regions) {
name <- paste("Region", i)
cat("\n \n")
cat(paste("###", name))
cat("\n \n")
plotDMRs(
BSseq = dmr$bs, regions = dmr$dmr[i, ], testCovariate = "Group",
annoTrack = annoTrack, extend = 1000
)
cat("\n \n")
}
}To create DMR table
make_DT <- function(dmr) {
df <- data.frame(dmr$dmr[dmr$dmr$pval <= 0.05, ])[, 1:11]
df[, 7:11] <- round(df[, 7:11], digits = 2)
DT::datatable(
df,
rownames = F,
filter = "top", extensions = c("Buttons", "ColReorder"), options = list(
pageLength = 10,
buttons = c("copy", "csv", "excel", "pdf", "print"),
colReorder = list(realtime = FALSE),
dom = "fltBip"
)
)
}To create histograms of p-values
plot_hist <- function(dmr) {
ggplot() + aes(dmr$dmr$pval) +
geom_histogram(colour = "black", fill = "#3c8dbc", breaks = seq(0, 1, length.out = 20)) +
ggtitle("Pvalue distribution") +
xlab("P-value") + ylab("Frequency") +
theme_classic() +
theme(
plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
axis.text = element_text(size = 12),
axis.title = element_text(size = 14)
)
}To obtain M, Cov and Un matrices
get_matrix <- function(bs, type = "all") {
m <- getCoverage(bs, type = "M")
c <- getCoverage(bs, type = "Cov")
u <- c - m
r <- data.frame(bs@rowRanges)
beta <- data.frame(r, m / c)
if (type == "M") {
return(data.frame(r, m))
} else if (type == "Cov") {
return(data.frame(r, c))
} else if (type == "Un") {
return(data.frame(r, u))
} else if (type == "beta") {
return(beta)
} else {
return(list(M = data.frame(r, m), Cov = data.frame(r, c), Un = data.frame(r, u), Beta = beta))
}
}To plot heatmap of regions
plot_heatmap_regions <- function(dmrs, bs, cutoff = 0.05, cutoffCol = "pval",
aggregateRegions = T, aggrFun = "mean", pCols,
minOverlap = 1000, rrbs = NULL) {
beta <- get_matrix(bs = bs, type = "beta")
reg <- dmrs[data.frame(dmrs[, cutoffCol])[, cutoffCol] <= cutoff, ]
overlap <- suppressWarnings(findOverlaps(subject = reg, query = GRanges(beta), type = "within"))
res1 <- data.frame(reg[overlap@to, ], stringsAsFactors = F)
res2 <- data.frame(GRanges(beta)[overlap@from], stringsAsFactors = F)
res <- cbind(res1, res2)
res <- res[!duplicated(res), c(1:11, 20:ncol(res))]
res$ID <- paste(res[, 1], res[, 2], res[, 3], sep = "-")
# overlap.M <- suppressWarnings(findOverlaps(subject = reg, query = GRanges(all$M), type = "within"))
# res1.M <- data.frame(reg[overlap.M@to, ], stringsAsFactors = F)
# res2.M <- data.frame(GRanges(all$M)[overlap.M@from], stringsAsFactors = F)
# res.M <- cbind(res1.M, res2.M)
# res.M <- res.M[!duplicated(res.M), c(1:11, 20:ncol(res.M))]
# res.M$ID <- paste(res.M[, 1], res.M[, 2], res.M[, 3], sep = "-")
#
# overlap.Cov <- suppressWarnings(findOverlaps(subject = reg, query = GRanges(all$Cov), type = "within"))
# res1.Cov <- data.frame(reg[overlap.Cov@to, ], stringsAsFactors = F)
# res2.Cov <- data.frame(GRanges(all$Cov)[overlap.Cov@from], stringsAsFactors = F)
# res.Cov <- cbind(res1.Cov, res2.Cov)
# res.Cov <- res.Cov[!duplicated(res.Cov), c(1:11, 20:ncol(res.Cov))]
# res.Cov$ID <- paste(res.Cov[, 1], res.Cov[, 2], res.Cov[, 3], sep = "-")
beta <- res
# if (aggregateRegions) {
# cov <- plag(x = res.Cov[, 12:(ncol(res.Cov) - 1)], by = res.Cov$ID, agFun = median)
# m <- plag(x = res.M[, 12:(ncol(res.M) - 1)], by = res.M$ID, agFun = median)
# b <- m / cov
# r <- res.Cov[, 1:11][!duplicated(res.Cov[, 1:11]), ]
# rownames(r) <- paste(r[, 1], r[, 2], r[, 3], sep = "-")
# beta <- data.frame(r, b)
# } else {
# cov <- res.Cov[, 12:(ncol(res.Cov) - 1)]
# m <- res.M[, 12:(ncol(res.M) - 1)]
# b <- m / cov
# r <- res.Cov[, 1:11]
# beta <- data.frame(r, b)
# }
beta <- na.replace(beta, 0)
beta <- beta[order(beta$pval), ]
beta.a <- NULL
if (aggregateRegions) {
b <- plag(x = beta[, 12:(ncol(beta) - 1)], by = beta$ID, agFun = aggrFun)
r <- beta[, 1:11][!duplicated(beta[, 1:11]), ]
rownames(r) <- paste(r[, 1], r[, 2], r[, 3], sep = "-")
beta.a <- data.frame(r, b)
} else {
beta.a <- beta
}
beta <- beta.a
anno.row <- NULL
anno.col <- NULL
mat.plot <- NULL
main <- NULL
showRownames <- NULL
if (dim(data.frame(rrbs))[1] > 0) {
overlap <- suppressWarnings(findOverlaps(subject = GRanges(beta), query = rrbs, minoverlap = minOverlap))
r1 <- data.frame(GRanges(beta)[overlap@to, ], stringsAsFactors = F)
r2 <- data.frame(rrbs[overlap@from], stringsAsFactors = F)
r <- cbind(r1, r2)
if (dim(data.frame(r))[1] > 0) {
r$ID <- paste0(as.character(r$seqnames), "-", r$start, "-", r$end, "(", r$geneNames, ")")
r <- r[!duplicated(r$ID), ]
rownames(r) <- r$ID
r <- r[, -ncol(r)]
anno.row <- data.frame(r[, c(4, 8:11)])
anno.col <- data.frame(pData(bs)[, pCols], stringsAsFactors = F)
s <- colnames(data.frame(rrbs))[grep("methRatio", colnames(data.frame(rrbs)))]
df <- data.frame(ID = s, Age = "", Group = "RRBS")
rownames(df) <- df$ID
anno.col <- rbind(anno.col, df[, -1])
g1 <- unique(anno.col$Group)[1]
g2 <- unique(anno.col$Group)[2]
g3 <- unique(anno.col$Group)[3]
mat <- r
mat1 <- mat[, rownames(anno.col)[anno.col$Group == g1]]
mat2 <- mat[, rownames(anno.col)[anno.col$Group == g2]]
mat3 <- mat[, rownames(anno.col)[anno.col$Group == g3]]
mat.plot <- data.frame(mat1, mat2, mat3)
main <- "DMRs beta values (aggregated) + RRBS"
showRownames <- TRUE
} else {
anno.row <- beta[, c(4, 8:11)]
anno.col <- data.frame(pData(bs)[, pCols], stringsAsFactors = F)
g1 <- unique(anno.col$Group)[1]
g2 <- unique(anno.col$Group)[2]
mat <- beta[, 12:ncol(beta)]
mat1 <- mat[, rownames(anno.col)[anno.col$Group == g1]]
mat2 <- mat[, rownames(anno.col)[anno.col$Group == g2]]
mat.plot <- data.frame(mat1, mat2)
if (aggregateRegions) {
main <- "DMRs beta values (aggregated)"
} else {
main <- "DMRs beta values (not aggregated)"
}
showRownames <- FALSE
}
} else {
anno.row <- beta[, c(4, 8:11)]
anno.col <- data.frame(pData(bs)[, pCols], stringsAsFactors = F)
g1 <- unique(anno.col$Group)[1]
g2 <- unique(anno.col$Group)[2]
mat <- beta[, 12:ncol(beta)]
mat1 <- mat[, rownames(anno.col)[anno.col$Group == g1]]
mat2 <- mat[, rownames(anno.col)[anno.col$Group == g2]]
mat.plot <- data.frame(mat1, mat2)
if (aggregateRegions) {
main <- "DMRs beta values (aggregated)"
} else {
main <- "DMRs beta values (not aggregated)"
}
showRownames <- FALSE
}
pheatmap(
mat = mat.plot, color = viridis(n = 100), cluster_cols = F,
show_rownames = showRownames, show_colnames = F,
cluster_rows = F, annotation_row = anno.row,
annotation_col = anno.col, border_color = NA,
main = main
)
}Histograms of p-values
DMR tables
HighFat vs CTRL
LowProtein vs CTRL
LowProtein vs HighFat
DMR plots
HighFat vs CTRL
Region 1
Region 2
Region 3
Region 4
Region 5
LowProtein vs CTRL
Region 1
Region 2
Region 3
Region 4
Region 5
LowProtein vs HighFat
Region 1
Region 2
Region 3
Region 4
Region 5
Heatmap of Beta values
HighFat vs CTRL
Aggregated
plot_heatmap_regions(
dmrs = hf_ctrl$dmr, bs = hf_ctrl$bs,
cutoff = 0.05, cutoffCol = "pval",
aggregateRegions = T, aggrFun = "mean", pCols = 1:2,
rrbs = NULL, minOverlap = 1000
)LowProtein vs CTRL
Aggregated
plot_heatmap_regions(
dmrs = lp_ctrl$dmr, bs = lp_ctrl$bs,
cutoff = 0.05, cutoffCol = "pval",
aggregateRegions = T, aggrFun = "mean", pCols = 1:2,
rrbs = NULL, minOverlap = 1000
)LowProtein vs HighFat
Aggregated
plot_heatmap_regions(
dmrs = lp_hf$dmr, bs = lp_hf$bs,
cutoff = 0.05, cutoffCol = "pval",
aggregateRegions = T, aggrFun = "mean", pCols = 1:2,
rrbs = NULL, minOverlap = 1000
)SessionInfo
## ─ Session info ──────────────────────────────────────────────────────────
## setting value
## version R version 3.5.3 (2019-03-11)
## os Ubuntu 16.04.6 LTS
## system x86_64, linux-gnu
## ui X11
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz Europe/Zurich
## date 2019-04-30
##
## ─ Packages ──────────────────────────────────────────────────────────────
## package * version date lib
## acepack 1.4.1 2016-10-29 [1]
## annotate 1.60.1 2019-03-07 [1]
## AnnotationDbi * 1.44.0 2018-10-30 [1]
## AnnotationHub 2.14.5 2019-03-14 [1]
## annotatr 1.8.0 2018-10-30 [1]
## assertthat 0.2.1 2019-03-21 [1]
## backports 1.1.4 2019-04-10 [1]
## base64enc 0.1-3 2015-07-28 [1]
## bibtex 0.4.2 2017-06-30 [1]
## Biobase * 2.42.0 2018-10-30 [1]
## BiocGenerics * 0.28.0 2018-10-30 [1]
## BiocManager 1.30.4 2018-11-13 [1]
## BiocParallel * 1.16.6 2019-02-10 [1]
## biomaRt 2.38.0 2018-10-30 [1]
## Biostrings 2.50.2 2019-01-03 [1]
## bit 1.1-14 2018-05-29 [1]
## bit64 0.9-7 2017-05-08 [1]
## bitops 1.0-6 2013-08-17 [1]
## blob 1.1.1 2018-03-25 [1]
## bookdown 0.9 2018-12-21 [1]
## BSgenome 1.50.0 2018-10-30 [1]
## bsseq * 1.18.0 2018-10-30 [1]
## bumphunter 1.24.5 2018-12-01 [1]
## callr 3.2.0 2019-03-15 [1]
## cellranger 1.1.0 2016-07-27 [1]
## checkmate 1.9.1 2019-01-15 [1]
## cli 1.1.0 2019-03-19 [1]
## cluster 2.0.8 2019-04-05 [1]
## codetools 0.2-16 2018-12-24 [1]
## colorspace 1.4-1 2019-03-18 [1]
## crayon 1.3.4 2017-09-16 [1]
## crosstalk 1.0.0 2016-12-21 [1]
## curl 3.3 2019-01-10 [1]
## data.table * 1.12.2 2019-04-07 [1]
## DBI 1.0.0 2018-05-02 [1]
## DelayedArray * 0.8.0 2018-10-30 [1]
## DelayedMatrixStats 1.4.0 2018-10-30 [1]
## desc 1.2.0 2018-05-01 [1]
## DESeq2 1.22.2 2019-01-04 [1]
## devtools 2.0.2 2019-04-08 [1]
## digest 0.6.18 2018-10-10 [1]
## dmrseq * 1.2.5 2019-03-25 [1]
## doRNG 1.7.1 2018-06-22 [1]
## dplyr 0.8.0.1 2019-02-15 [1]
## DT 0.5 2018-11-05 [1]
## edgeR 3.24.3 2019-01-02 [1]
## evaluate 0.13 2019-02-12 [1]
## foreach 1.4.4 2017-12-12 [1]
## forecast 8.7 2019-04-29 [1]
## foreign 0.8-71 2018-07-20 [1]
## Formula 1.2-3 2018-05-03 [1]
## fracdiff 1.4-2 2012-12-02 [1]
## fs 1.2.7 2019-03-19 [1]
## genefilter 1.64.0 2018-10-30 [1]
## geneplotter 1.60.0 2018-10-30 [1]
## GenomeInfoDb * 1.18.2 2019-02-12 [1]
## GenomeInfoDbData 1.2.0 2019-01-17 [1]
## GenomicAlignments 1.18.1 2019-01-04 [1]
## GenomicFeatures * 1.34.8 2019-04-10 [1]
## GenomicRanges * 1.34.0 2018-10-30 [1]
## ggplot2 * 3.1.1 2019-04-07 [1]
## glue 1.3.1 2019-03-12 [1]
## gridExtra 2.3 2017-09-09 [1]
## gtable 0.3.0 2019-03-25 [1]
## gtools 3.8.1 2018-06-26 [1]
## HDF5Array 1.10.1 2018-12-05 [1]
## highr 0.8 2019-03-20 [1]
## Hmisc 4.2-0 2019-01-26 [1]
## hms 0.4.2 2018-03-10 [1]
## htmlTable 1.13.1 2019-01-07 [1]
## htmltools 0.3.6 2017-04-28 [1]
## htmlwidgets 1.3 2018-09-30 [1]
## httpuv 1.5.1 2019-04-05 [1]
## httr 1.4.0 2018-12-11 [1]
## imputeTS * 2.7 2018-06-20 [1]
## interactiveDisplayBase 1.20.0 2018-10-30 [1]
## IRanges * 2.16.0 2018-10-30 [1]
## iterators 1.0.10 2018-07-13 [1]
## jsonlite 1.6 2018-12-07 [1]
## knitr 1.22 2019-03-08 [1]
## labeling 0.3 2014-08-23 [1]
## later 0.8.0 2019-02-11 [1]
## lattice 0.20-38 2018-11-04 [1]
## latticeExtra 0.6-28 2016-02-09 [1]
## lazyeval 0.2.2 2019-03-15 [1]
## limma 3.38.3 2018-12-02 [1]
## lmtest 0.9-36 2018-04-04 [1]
## locfit 1.5-9.1 2013-04-20 [1]
## magrittr 1.5 2014-11-22 [1]
## Matrix 1.2-17 2019-03-22 [1]
## matrixStats * 0.54.0 2018-07-23 [1]
## memoise 1.1.0 2017-04-21 [1]
## mime 0.6 2018-10-05 [1]
## miniUI 0.1.1.1 2018-05-18 [1]
## munsell 0.5.0 2018-06-12 [1]
## nlme 3.1-139 2019-04-09 [1]
## nnet 7.3-12 2016-02-02 [1]
## org.Mm.eg.db * 3.7.0 2019-01-17 [1]
## outliers 0.14 2011-01-24 [1]
## permute 0.9-5 2019-03-12 [1]
## pheatmap * 1.0.12 2019-01-04 [1]
## pillar 1.3.1 2018-12-15 [1]
## pkgbuild 1.0.3 2019-03-20 [1]
## pkgconfig 2.0.2 2018-08-16 [1]
## pkgload 1.0.2 2018-10-29 [1]
## pkgmaker 0.27 2018-05-25 [1]
## plgINS * 0.1.5 2019-04-23 [1]
## plyr 1.8.4 2016-06-08 [1]
## prettyunits 1.0.2 2015-07-13 [1]
## processx 3.3.0 2019-03-10 [1]
## progress 1.2.0 2018-06-14 [1]
## promises 1.0.1 2018-04-13 [1]
## ps 1.3.0 2018-12-21 [1]
## purrr 0.3.2 2019-03-15 [1]
## quadprog 1.5-5 2013-04-17 [1]
## quantmod 0.4-14 2019-03-24 [1]
## questionr 0.7.0 2018-11-26 [1]
## R.methodsS3 1.7.1 2016-02-16 [1]
## R.oo 1.22.0 2018-04-22 [1]
## R.utils 2.8.0 2019-02-14 [1]
## R6 2.4.0 2019-02-14 [1]
## RColorBrewer 1.1-2 2014-12-07 [1]
## Rcpp 1.0.1 2019-03-17 [1]
## RCurl 1.95-4.12 2019-03-04 [1]
## readr 1.3.1 2018-12-21 [1]
## readxl * 1.3.1 2019-03-13 [1]
## regioneR 1.14.0 2018-10-30 [1]
## registry 0.5-1 2019-03-05 [1]
## remotes 2.0.4 2019-04-10 [1]
## reshape2 1.4.3 2017-12-11 [1]
## rhdf5 2.26.2 2019-01-02 [1]
## Rhdf5lib 1.4.3 2019-03-25 [1]
## rlang 0.3.4 2019-04-07 [1]
## rmarkdown 1.12 2019-03-14 [1]
## rmdformats 0.3.5 2019-02-19 [1]
## rngtools 1.3.1 2018-05-15 [1]
## rpart 4.1-15 2019-04-12 [1]
## rprojroot 1.3-2 2018-01-03 [1]
## Rsamtools 1.34.1 2019-01-31 [1]
## RSQLite 2.1.1 2018-05-06 [1]
## rstudioapi 0.10 2019-03-19 [1]
## rtracklayer * 1.42.2 2019-03-01 [1]
## S4Vectors * 0.20.1 2018-11-09 [1]
## scales 1.0.0 2018-08-09 [1]
## sessioninfo 1.1.1 2018-11-05 [1]
## shiny 1.3.2 2019-04-22 [1]
## stinepack 1.4 2018-07-30 [1]
## stringi 1.4.3 2019-03-12 [1]
## stringr 1.4.0 2019-02-10 [1]
## SummarizedExperiment * 1.12.0 2018-10-30 [1]
## survival 2.44-1.1 2019-04-01 [1]
## testthat 2.1.1 2019-04-23 [1]
## tibble 2.1.1 2019-03-16 [1]
## tidyselect 0.2.5 2018-10-11 [1]
## timeDate 3043.102 2018-02-21 [1]
## tseries 0.10-46 2018-11-19 [1]
## TTR 0.23-4 2018-09-20 [1]
## TxDb.Mmusculus.UCSC.mm10.knownGene * 3.4.4 2019-01-17 [1]
## urca 1.3-0 2016-09-06 [1]
## usethis 1.5.0 2019-04-07 [1]
## viridis * 0.5.1 2018-03-29 [1]
## viridisLite * 0.3.0 2018-02-01 [1]
## withr 2.1.2 2018-03-15 [1]
## xfun 0.6 2019-04-02 [1]
## XML 3.98-1.19 2019-03-06 [1]
## xtable 1.8-4 2019-04-21 [1]
## xts 0.11-2 2018-11-05 [1]
## XVector 0.22.0 2018-10-30 [1]
## yaml 2.2.0 2018-07-25 [1]
## zlibbioc 1.28.0 2018-10-30 [1]
## zoo 1.8-5 2019-03-21 [1]
## source
## CRAN (R 3.5.1)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.5.3)
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.2)
## Bioconductor
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## Bioconductor
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## local
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## Bioconductor
## CRAN (R 3.5.2)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## Bioconductor
## Bioconductor
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.2)
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## Bioconductor
## CRAN (R 3.5.3)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.1)
## CRAN (R 3.5.3)
## CRAN (R 3.5.2)
## CRAN (R 3.5.3)
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.1)
## Bioconductor
## CRAN (R 3.5.3)
##
## [1] /home/ubuntu/R/x86_64-pc-linux-gnu-library/3.5
## [2] /usr/local/lib/R/site-library
## [3] /usr/lib/R/site-library
## [4] /usr/lib/R/library